﻿//using System;
//using System.Collections.Generic;
//using System.Data;
//using System.Data.Entity;
//using System.Linq;
//using System.Web;
//using System.Web.Mvc;
//using TaoNiuMemberSystem.Models;
//using System.Text;
//using PagedList;

//namespace TaoNiuMemberSystem.Controllers
//{
//    public class SmsController : Controller
//    {
//        private TN_DbEntity db = new TN_DbEntity();

//        //分页记录
//        int pageSize = 10;

//        [IsLogon]
//        public ViewResult Index(int? page)
//        {
//            int pageIndex = (page ?? 1) - 1;
//            string oemail = ((Users)Session["userInfo"]).email;
//            var sms = db.TN_Sms.Where(s => s.OEmail == oemail && s.Status != 3).OrderByDescending(ss => ss.SendTime);
//            return View(sms.ToPagedList(pageIndex, pageSize));
//        }

//        [IsLogon]
//        public ActionResult Details(Guid id)
//        {
//            string oemail = ((Users)Session["userInfo"]).email;
//            TN_Sms tn_sms = db.TN_Sms.SingleOrDefault(ts => ts.OEmail == oemail && ts.SmsID == id);
//            if (tn_sms == null)
//            {
//                string info = string.Format("/Sms/?tip={0}", "您查看的短信不存在!");
//                return Redirect(info);
//            }
//            return View(tn_sms);
//        }

//        [IsLogon]
//        public ActionResult Send()
//        {
//            return View();
//        }


//        [IsLogon]
//        [HttpPost]
//        [ValidateInput(false)]
//        public ActionResult Send(FormCollection fc)
//        {
//            //提示信息
//            string info = "";
//            //状态报告
//            string postReturn = "";
//            string oemail = ((Users)Session["userInfo"]).email;
//            string mobile = fc["smsTo"];
//            string content = fc["smsContent"];
//            string time = fc["sendTime"];
//            string isSendByTime = fc["isSendByTime"];

//            //处理后的手机号码
//            mobile = DealMobileNum(mobile);

//            TN_Sms ts = new TN_Sms();
//            ts.SmsID = Guid.NewGuid();
//            ts.OEmail = oemail;
//            ts.Msg = content;
//            ts.SendTime = DateTime.Now;
//            ts.SmsTo = mobile;

//            //非定时发送
//            if (string.IsNullOrEmpty(isSendByTime))
//            {
//                try
//                {
//                    postReturn = TaoNiuMemberSystem.SendSMS.SendSMSClass.Sendsms(mobile, content);

//                    if (postReturn == "发送成功")
//                    {
//                        info = string.Format("成功发送{0}条短信.", mobile.Split(',').Count());
//                        ts.Status = 1;
//                        ts.Report = info;
//                        db.TN_Sms.Add(ts);
//                        db.SaveChanges();
//                    }
//                    else
//                    {
//                        info = string.Format("发送失败!失败原因:{0}", postReturn);   
//                        ts.Status = 0;
//                        ts.Report = info;
//                        db.TN_Sms.Add(ts);
//                        db.SaveChanges();
//                    }
//                }
//                catch
//                {
//                    ts.Status = 2;
//                    db.TN_Sms.Add(ts);
//                    db.SaveChanges();
//                    info = "发送失败,请看状态报告！";
//                    return Redirect(info);
//                }
//            }
//            //定时发送
//            else
//            {
//                ts.SendTime = Convert.ToDateTime(time);
//                if ((ts.SendTime - DateTime.Now).TotalMinutes < 10)
//                {
//                    Response.Write("<script>alert('请填写一个至少比当前北京时间大10分钟的发送时间.');</script>");
//                    return View();
//                }
//                ts.Status = 2;
//                ts.Report = "";
//                db.TN_Sms.Add(ts);
//                db.SaveChanges();
//                info = string.Format("系统已经为您设置定时发送！");
//            }

//            return Redirect("/Sms/?tip="+info);
//        }

//        /// <summary>
//        /// 处理输入号码
//        /// </summary>
//        /// <param name="mobile">一个或多个手机号码,用英文逗号分开</param>
//        /// <returns></returns>
//        private static string DealMobileNum(string mobile)
//        {
//            StringBuilder sbMobile = new StringBuilder();
//            string[] mobiles = mobile.Split(',');
//            for (int i = 0; i < mobiles.Length; i++)
//            {
//                string m = mobiles[i];
//                if (!string.IsNullOrEmpty(m))
//                {
//                    if (sbMobile.Length == 0)
//                        sbMobile.Append(m);
//                    else
//                        sbMobile.Append("," + m);
//                }
//            }
//            return sbMobile.ToString();
//        }

//        [IsLogon]
//        public ActionResult Edit(Guid id)
//        {
//            string oemail = ((Users)Session["userInfo"]).email;
//            TN_Sms tn_sms = db.TN_Sms.SingleOrDefault(ts => ts.OEmail == oemail && ts.SmsID == id);
//            if (tn_sms == null)
//            {
//                string info = string.Format("/Sms/?tip={0}", "您编辑的短信不存在!");
//                return Redirect(info);
//            }
//            if (tn_sms.Status == 1)
//            {
//                string info = string.Format("/Sms/?tip={0}", "该条短信已经发送成功,只能转发,不能编辑!");
//                return Redirect(info);
//            }
//            return View(tn_sms);
//        }

//        [IsLogon]
//        [HttpPost]
//        [ValidateInput(false)]
//        public ActionResult Edit(TN_Sms ts, FormCollection fc)
//        {
//            string info = "";
//            string mobile = fc["smsTo"];
//            string content = fc["smsContent"];
//            string time = fc["sendTime"];
//            string isSendByTime = fc["isSendByTime"];
//            string issendnow = fc["issendnow"];
//            try
//            {
//                //立即发送
//                if (issendnow == "yes")
//                {
//                    mobile = DealMobileNum(mobile);
                    
//                    info = TaoNiuMemberSystem.SendSMS.SendSMSClass.Sendsms(mobile, content);
//                    ts.Msg = content;
//                    ts.SmsTo = mobile;
//                    ts.SendTime = DateTime.Now;

//                    if (info == "发送成功")
//                    {
//                        info = string.Format("成功发送{0}条短信.", mobile.Split(',').Count());
//                        ts.Status = 1;
//                        ts.Report = info;
//                        db.Entry(ts).State = EntityState.Modified;
//                        db.SaveChanges();
//                    }
//                    else
//                    {
//                        info = string.Format("发送失败!失败原因:{0}", info);
//                        ts.Status = 0;
//                        ts.Report = info;
//                        db.Entry(ts).State = EntityState.Modified;
//                        db.SaveChanges();
//                    }
//                }
//                //保存
//                else
//                {
//                    ts.Msg = content;
//                    ts.SmsTo = mobile;
//                    ts.SendTime = Convert.ToDateTime(time);
//                    if ((ts.SendTime - DateTime.Now).TotalMinutes < 10)
//                    {
//                        Response.Write("<script>alert('请填写一个至少比当前标准时间大10分钟的发送时间.');</script>");
//                        return View(ts);
//                    }
//                    db.Entry(ts).State = EntityState.Modified;
//                    db.SaveChanges();
//                    info = string.Format("保存成功!");
//                }
//            }
//            catch
//            {
//                Response.Write("<script>alert('保存失败,请确保您的输入无误后再提交!');</script>");
//                return View(ts);
//            }

//            return Redirect("/Sms/?tip="+info);
//        }

//        /// <summary>
//        /// 转发短信
//        /// </summary>
//        /// <param name="id"></param>
//        /// <returns></returns>
//        [IsLogon]
//        public ActionResult Forward(Guid id)
//        {
//            string oemail = ((Users)Session["userInfo"]).email;
//            TN_Sms tn_sms = db.TN_Sms.SingleOrDefault(ts => ts.OEmail == oemail && ts.SmsID == id);
//            if (tn_sms == null)
//            {
//                string info = string.Format("/Sms/?tip={0}", "您转发的短信不存在!");
//                return Redirect(info);
//            }
//            return View(tn_sms);
//        }

//        [IsLogon]
//        public ActionResult Delete(Guid id)
//        {
//            string oemail = ((Users)Session["userInfo"]).email;
//            TN_Sms tn_sms = db.TN_Sms.SingleOrDefault(ts => ts.OEmail == oemail && ts.SmsID == id);
//            if (tn_sms == null)
//            {
//                string info = string.Format("/Sms/?tip={0}", "您删除的短信不存在!");
//                return Redirect(info);
//            }
//            return View(tn_sms);
//        }

//        [IsLogon]
//        [HttpPost, ActionName("Delete")]
//        public ActionResult DeleteConfirmed(Guid id)
//        {
//            string oemail = ((Users)Session["userInfo"]).email;
//            TN_Sms tn_sms = db.TN_Sms.SingleOrDefault(ts => ts.OEmail == oemail && ts.SmsID == id);
//            try
//            {
//                if (tn_sms == null)
//                {
//                    string info = string.Format("/Sms/?tip={0}", "您删除的短信不存在!");
//                    return Redirect(info);
//                }
//                db.Entry(tn_sms).State = EntityState.Modified;
//                tn_sms.Status = 3;
//                db.SaveChanges();
//                return RedirectToAction("Index");
//            }
//            catch
//            {
//                return View();
//            }
//        }

//        protected override void Dispose(bool disposing)
//        {
//            db.Dispose();
//            base.Dispose(disposing);
//        }
//    }
//}